<?php

class KlientController extends Zend_Controller_Action {

    public function edytujDaneAction() {

        //pobieram login usera
        $auth = Zend_Auth::getInstance();
        $login = $auth->getIdentity()->USE_login;

        $form = new Application_Form_FEdytujDane();

        // tworzymy obiekt user, pobieramy dane do wypełnienia formularza
        $user = new Application_Model_DbTable_User();
        $daneUsera = $user->getUser($login);

        $form->populate($daneUsera);
        $this->view->edycjaDanychForm = $form;

        //odbieramy dane z formularza
        $request = $this->getRequest();
        $aPost = $this->getRequest()->getPost();
        if ($request->isPost() && $aPost['submit'] == 'Zapisz Dane') {
            if ($form->isValid($request->getPost())) {

                $password = $form->getValue('USE_password');
                $imie = $form->getValue('USE_imie');
                $nazwisko = $form->getValue('USE_nazwisko');
                $email = $form->getValue('USE_email');

                //updateujemy usera nowymi danymi
                $user->updateUser($login, $password, $imie, $nazwisko, $email);
            }
        }
    }

//wyswietla na grafik z mozliwoscia rezerwacji zajec /badz wycofania rezerwacji(przekierowanie do innej acji kontrolera)
    public function rezerwacjaAction() {
        $this->view->content = 'tu możesz zarezerwować zajęcia';

        //pobieramy date aby potem pobrac zajecia dla danego tygodnia i roku
        $date = new Zend_Date();
        //np 2012
        $rok = $date->get(Zend_Date::YEAR);
        // np. 36 tydzien w roku // np. 36
        $tydzienRoku = $date->get(Zend_Date::WEEK);

        $zajecia = new Application_Model_DbTable_Zajecia();
        $this->view->zajecia = $zajecia->getZajecia($rok, $tydzienRoku);
    }

    public function potwierdzenieRezerwacjaAction() {

        //pobieramy parametr z url i na jego podstawie pobieramy z bazy zajęcie
        $idZaj = $this->_request->getParam('id');
        $zajecie = new Application_Model_DbTable_Zajecia();
        $daneZajecia = $zajecie->getZajecie($idZaj);

        //uzywamy wlasnego helpera do uzyskania godziny zajec na podstawie ZAJ_godzina
        $godzina = $this->_helper->godzina->getGodzina($daneZajecia['ZAJ_godzina']);
        //podmieniamy ZAJ_godzina na normalną godzine uzyskana dzieki helperowi
        $daneZajecia['ZAJ_godzina'] = $godzina;

        $dzien = $this->_helper->dzien->getDzien($daneZajecia['ZAJ_dzien_tygodnia']);
        //podmieniamy ZAJ_dzien_tygodnia(1-7) na normaly dzien np. poniedziałek uzyskana dzieki helperowi
        $daneZajecia['ZAJ_dzien_tygodnia'] = $dzien;

        //pobieramy id zalogowanego usera zeby potem połączyć go z zajęciami / sprawdzic czy sa juz jakies polaczenia z zaj
        $auth = Zend_Auth::getInstance();
        $idUser = $auth->getIdentity()->USE_id;

        //pobieramy wszystkie ZAJ_id które są połączone z userem i sprawdzamy
        // czy user nie próbuje rezerwować zajęć na które już się zarezerwował
        $userTable = new Application_Model_DbTable_User();
        $userRowset = $userTable->find($idUser);
        $user1 = $userRowset->current();
        $zajeciaRowset = $user1->findManyToManyRowset('Application_Model_DbTable_Zajecia', 'Application_Model_DbTable_Zzzusezaj');
        $zajeciaRowset->toArray();

        //sprawdzamy czy w pobranych wynikach nie ma już id tych zajeć / jesli jest oznacza to
        //że user już wcześniej zarezerwował te zajęcia 
        $licznikZajec = 0; // 
        foreach ($zajeciaRowset as $zajecia) {
            if ($zajecia['ZAJ_id'] == $idZaj) {
                $licznikZajec++;
            }
        }

        $form = new Application_Form_FRezerwacja(array('licznikZajec' => $licznikZajec));
        $form->populate($daneZajecia);

        if (($licznikZajec == 0) && ($daneZajecia['ZAJ_max_liczba_osob'] == $zajecie->ileZapisanychOsob($idZaj))) {
            $form->blockFields();
        }

        $this->view->form = $form;

        //odbieramy dane z formularza
        $request = $this->getRequest();
        $aPost = $this->getRequest()->getPost();
        if ($request->isPost() && $aPost['submit'] == 'Rezerwuj ') {

            //jeśli licznik = 0 to znaczy ze user nie eezerwował tych zajęć i dodajemy mu rezerwacje
            //licznik przekazemy z powrotem do formularza zeby sprawdzic który submit wysietlic: rezerwuj/zrezygnuj
            $licznikZajec = 0;
            foreach ($zajeciaRowset as $zajecia) {
                if ($zajecia['ZAJ_id'] == $idZaj) {
                    $licznikZajec++;
                }
            }
            if ($licznikZajec == 0) {
                //łączymy usera z zajeciami
                $zzzusezaj = new Application_Model_DbTable_Zzzusezaj();
                $zzzusezaj->jointUserZajecia($idUser, $idZaj);

                $licznikZajec++; //dajemy znac formularzowi ze user zarezerwowal zajecia  /form zmieni przycisk
                $form = new Application_Form_FRezerwacja(array('licznikZajec' => $licznikZajec));
                $form->populate($daneZajecia);
                $this->view->form = $form;
            } else {
                $form = new Application_Form_FRezerwacja(array('licznikZajec' => $licznikZajec));
                $form->populate($daneZajecia);
                $this->view->form = $form;
            }
        }
        if ($request->isPost() && $aPost['submit'] == 'Zrezygnuj') {

            //usuwamy polaczenie pomiedzy userem a zajeciami
            $zzzusezaj = new Application_Model_DbTable_Zzzusezaj();
            $zzzusezaj->deleteIntersection($idUser, $idZaj);

            //ustawiamy licznik = 0,bo user odwołał rezerwacje
            //licznik przekazemy z powrotem do formularza zeby sprawdzic który submit wysietlic: rezerwuj/zrezygnuj
            $licznikZajec = 0;

            $form = new Application_Form_FRezerwacja(array('licznikZajec' => $licznikZajec));
            $form->populate($daneZajecia);
            $this->view->form = $form;
        }

        if (($licznikZajec == 0) && ($daneZajecia['ZAJ_max_liczba_osob'] == $zajecie->ileZapisanychOsob($idZaj))) {
            $this->view->wiadomosc = 'BRAK MIEJSC';
        }
    }

    public function kartaCzlonkowskaAction() {
        //pobieramy id zalogowanego usera zeby potem połączyć go z zajęciami / sprawdzic czy sa juz jakies polaczenia z zaj
        $auth = Zend_Auth::getInstance();
        $idUser = $auth->getIdentity()->USE_id;
        $loginUser = $auth->getIdentity()->USE_login;

        $userTable = new Application_Model_DbTable_User();
        $daneUsera = $userTable->getUser($loginUser);

        $userRowset = $userTable->find($idUser);
        $user = $userRowset->current();
        $kartaRowset = $user->findDependentRowset('Application_Model_DbTable_Karta')->toArray();
        foreach ($kartaRowset as $karta) {
            $daneUsera['KAR_data_waznosci'] = $karta['KAR_data_waznosci'];
            $daneUsera['KAR_stan_konta'] = $karta['KAR_stan_konta'];
        }

        $form = new Application_Form_FKarta();
        $form->populate($daneUsera);
        $form->blockFields();
        $this->view->form = $form;
        $form->blockFields();
    }

}

